package com.anti.modular.sys.dict.service;

import cn.hutool.core.lang.Dict;
import com.anti.commom.api.Result;
import com.anti.jdbc.support.page.PageParam;
import com.anti.jdbc.support.page.PageResult;
import com.anti.modular.sys.dict.entity.SysDictType;
import com.anti.modular.sys.dict.param.SysDictTypeParam;
import com.anti.modular.sys.dict.result.SysDictTreeNode;

import java.util.List;

/**
 * @Description TODO
 * @Author anTi
 * @Date 2021-3-5
 */
public interface SysDictTypeService {

    PageResult page(PageParam pageParam, SysDictTypeParam sysDictTypeParam);


    /**
     * 查看系统字典类型
     * @param sysDictTypeParam 查看参数
     * @return 系统字典类型
     * @author xuyuxiang，xuyuxiang
     */
    SysDictType detail(SysDictTypeParam sysDictTypeParam);

    /**
     * 添加系统字典类型
     * @param sysDictTypeParam 添加参数
     */
    void add(SysDictTypeParam sysDictTypeParam);

    /**
     * 删除系统字典类型
     * @param sysDictTypeParam 删除参数
     */
    void delete(SysDictTypeParam sysDictTypeParam);

    /**
     * 编辑系统字典类型
     * @param sysDictTypeParam 编辑参数
     */
    void edit(SysDictTypeParam sysDictTypeParam);

    /**
     * 修改状态（字典 0正常 1停用 2删除）
     * @param sysDictTypeParam 修改参数
     */
    void saveChangeStatus(SysDictTypeParam sysDictTypeParam);

    /**
     * 获取字典类型列表
     *
     * @param sysDictTypeParam 查询参数
     * @return 系统字典类型列表
     */
    List<SysDictType> list(SysDictTypeParam sysDictTypeParam);
    /**
     * 系统字典类型与字典值构造的树
     * @return 树
     */
    List<SysDictTreeNode> tree();

    /**
     * 系统字典类型下拉
     *
     * @param sysDictTypeParam 下拉参数
     * @return 增强版hashMap，格式：[{"code:":"1", "value":"正常"}]
     */
    List<Dict> dropDown(SysDictTypeParam sysDictTypeParam);}
